import Vue from 'vue'
import VueRouter from 'vue-router'
import store from "../store"
Vue.use(VueRouter)

//导出数据给menu的form.vue
export const IndexRoutes = [
  {
    path:"menu",
    component:() =>import("../pages/menu/menu.vue"),meta:{title:"菜单管理"},
  },
  {
    path:"role",
    component:() =>import("../pages/role/role.vue"),meta:{title:"角色管理"}
  },
  {
    path:"manage",
    component:() =>import("../pages/manage/manage.vue"),meta:{title:"管理员管理"}
  },
  {
    path:"cate",
    component:() =>import("../pages/cate/cate.vue"),meta:{title:"商品分类"}
  },
  {
    path:"specs",
    component:() =>import("../pages/specs/specs.vue"),meta:{title:"商品规格"}
  },
  {
    path:"goods",
    component:() =>import("../pages/goods/goods.vue"),meta:{title:"商品管理"}
  },
  {
    path:"banner",
    component:() =>import("../pages/banner/banner.vue"),meta:{title:"轮播图管理"}
  },
  {
    path:"member",
    component:() =>import("../pages/member/member.vue"),meta:{title:"会员管理"}
  },
  {
    path:"seckill",
    component:() =>import("../pages/seckill/seckill.vue"),meta:{title:"秒杀活动"}
  }
]
//给每条路由添加路由独享守卫，再放入路由规则(router)中
IndexRoutes.forEach(item=>{
  item.beforeEnter=(to,from,next)=>{
    let {userInfo:{menus_url}} = store.getters;
    if(menus_url.includes("/"+ item.path)){
      next()
    }else{
      next("/")
    }
  }
})

export const routes = [
  {
    path:"/login",
    component:() =>import("../pages/login/login.vue")
  },
  {
    path:"/",
    component:() =>import("../pages/index/index.vue"),
    children:[
      {
        path:"",
        component:() =>import("../pages/home/home.vue")
      },
      ...IndexRoutes
    ]
  },
  {
    path:"*",
    redirect:"login"
  }

]

const router = new VueRouter({
  routes
})

//登陆拦截
router.beforeEach((to,from,next)=>{
  //1.如果去的是登陆直接就next
  if(to.path ==="/login"){
    next()
    return;
  }
  //2,如果不是登陆，判断是否登陆（判断vuex中的userInfo.token）,登陆了，就next
  if(store.getters.userInfo.token){
    next()
    return
  }
  //3,未登录，next('/login')
  next("/login")
})

export default router
